﻿using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Security;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using SharedObjects;
using SharedObjects.Registration;

namespace TheGameWebsite
{
	// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IRegistration" in both code and config file together.
	[ServiceContract(
		Name = "RegistrationService", 
		Namespace = "TheGame.Webservices"
		//SessionMode = SessionMode.Required
		)]//CallbackContract = typeof(IRegistrationCallback)
	public interface IRegistration
	{
		[OperationContract] bool RequestEmailConfirmCode(string email);
		[OperationContract] ulong VerifyEmailAddressCode(string code);
		[OperationContract] bool CheckAgentName(string name);
		[OperationContract] List<Corporation> GetAvailableCorporations();
		[OperationContract] bool SaveAgentNameAndPassword(ulong regId, string name, string password, ulong corporationId);
		[OperationContract] string SubmitPaymentData(ulong regId, RegisteredUser userData);
		[OperationContract] bool PaypalConfirmation(ulong regId, string token, string payerId);
		[OperationContract] bool CancelTransaction(ulong regId, string token);
	}
}
